Apparently GraphX relies on this kind of cyclical dependency to work, so having RDD's depending on each other is actually a valid (though mind-blowing) thing to do, so we can't throw `IllegalArgumentException`.

Though it's good to handle this scenario by ignoring a node we have already visited.