ProcessBuilder does invoke a new process, but you are effectively killing the parallelism by calling waitFor, since that will wait for the first process to complete before launching the next, making the calls sequential instead.
You could either use PB and skip the wait calls, or perhaps use ordinary java threads wrapping calls to Runtime.exec instead.