When I run your code, Task Manager shows that there is a new Notepad.exe process running as the "ASP.NET v4.0" user. I can't see this instance of Notepad, as it is running in a non-interactive session separate from my own. Not all applications will successfully run in a session like this; the user profile isn't loaded and that can cause problems for an application that isn't expecting it.
Even if you get this to work, spawning an arbitrary number of processes is a questionable strategy. If your task is compute-bound (like this one might be), your performance will suffer once you have more tasks than cores. Think about reworking your solution to use a work queue.