This is all speculation, as I don't even run the program, but here goes: The only reason I can imagine they would use MPI at the client side as opposed to threading it is that they are already using MPI to communicate back with the main servers. If this is the case, it would be relatively easy (from a learning-curve point of view) to continue on toward using this to communicate at the client side. If you're a grad student who's never written anything multithreaded, it's easier to stick with what you know than to experiment with something new. Likewise, going the multiprocess w/MPI route, you don't have to worry about shared memory or mutexes, so it's easier for the noob programmer to implement. Otherwise, I see no tangible benefit for using MPI like this.
I wrote cluster software with lammpi before I ever began writing multithreaded apps. I can attest that the MPI route takes less brain power. The multithreading route may be simpler to code, but there's a lot more to think about. Even in the professional field, I was the only person at my previous company who was not afraid of multithreading.