Our current logic in this function to check whether this is a distributed plan is to use "root instanceof ReceivePlanNode". It does not need to call the  requiresTwoFragments() function which may be a little inefficient. Besides, it make easier for the reader to know that the "root" is an ReceivePlanNode. 

I suggest to rename "candidate" to "scanNode", or something indicates its type.