Your approach is correct, but you should do a minor modifiation, but first let me explain what happens.
The same process starts on all nodes - setting up the structures to calculate and if you write print all processes will
print this message. Once the calculation starts, each process is assign to different parts of the calculation. So for example
where it comes to finding the eigenvectors for all the k-points. The first nodes takes the first part of the k-points and the second
the second part and so on. Once done they will continue along again, until it enters a new part where it can benefit from MPI.
If you want to for the prettiness of your scripts you can use nlprint(....). It is a MPI-safe print, meaning that only the master node will print this.
When it comes to the plotting, one are in general not desiring all the nodes to make the same graph and overwrite the output file as it is bound to give problems. Refering to http://www.quantumwise.com/documents/tutorials/latest/ParallelGuide/ParallelGuide.pdf
you can see there is a function called: processIsMaster()
So if you in your script do something like this:
if processIsMaster():
# Do some plotting
then it is only the master node that will do plotting.