Compiling produces object files that may reference external symbols. Linking is the process of combining group of relevant object files into resulting single binary, taking care of all those external references between them, among other tasks.
Each source file is compiled into one matching object file. In your case, you have compiled myMain.d and myTestModule.d, so there have appeared two object files: myMain.o and myTestModule.o. But you provide only one of them to linker (via gcc) and that predictably results in some symbols unresolved.
gcc myMain.o myTestModule.o -o MyMain -m64 -lphobos2 -lpthread -lm
...should do the trick.
Also note that you can use the very same dmd binary for invoking linker and than it will take care about linking default stuff (phobos, pthread etc.) for you:
dmd myMain.o myTestModule.o -o MyMain -m64