change the code in validators.py
scope = _schema.get(u"id")
if scope:
self.resolver.push_scope(scope)
into
scope = _schema.get(u"id")
if scope:
self.resolver.push_scope(scope)
else:
scope = _schema.get(u"$id")
if scope:
self.resolver.push_scope(scope)