Is that considered dynamically linked?
No. You are dynamically linking to another program only if you load its code in your own process's address space.
Your suggested solution of running the GPLed program as a separate process and then communicating with it using standard IPC facilities is exactly how this problem is solved in the field.