Imagine water flowing through a pipe. It's the difference in pressure between the two ends of the pipe that causes the water to flow. If the pressure at the two ends is equal, there's nothing to push the water. The same principle can be used to explain the movement of electrical charges in a wire. Potential difference being what "pushes" those charges, causing a current flow.
So, is it correct to say when there is no load across a battery, then there's no potential difference, only E.M.F.? I find that utterly confusing, especially considering that there is ALWAYS a load on the battery, even if it's only the air between the connectors!
If you put a valve in the middle of that water pipe, apply a pressure difference between the ends, and switch the valve off to block weater flow, does that mean that now there is no pressure difference between the ends? Of course not.
However, from a design perspective, it doesn't often help to exclusively define potential difference as the cause of current flow, or to say that current flowing will cause a potential difference to drop across whatever it flows through.
If you have a constant current sink/source in series with a resistor, you imagine that the sink/source will determine the current flowing through the resistor, thus causing some calculable voltage drop across the resistor - in this case you know the current, and work out the voltage from it. That's a "current flow causes potential difference" paradigm, in spite of the above.
Conversely, a there are situations where you have a known potential difference, like a battery, and the load (say a resistor/LED) is calculated from a "potential difference causes current flow" paradigm.
The paradigm you settle upon(what causes what) during design will be determined by the context of the problem, rather than the nature of electric fields and charges. That's the domain of people who design transitors and such.