There are times when you might need to retrieve data about another entity when processing a migration. You might need to do this in the prepareRow method of your Migration class. However, Running an EntityFieldQuery in the prepareRow method will cause your migration to fail. Why? well, I'm still investigating exactly why, but I have narrowed down that it marks you migration as running and then tries to go back in and process it again. In this case, it will throw an error saying that you already have a running process and stop running the migration.