Ok, from a really quick look at the script above, the code never sets the GPU’s ‘use’ attribute to false at all.
Because of this, any GPU’s which are saved in the user preferences to be used, will be used because the value of ‘use’ for each GPU will be true as set by the user preferences.
If the OP wants the GPUs to obey the script rather than the user preferences then I’d recommend setting each GPU’s ‘use’ value to either True, if the GPU should render, of False if it shouldn’t according to the settings given to the script.
So you’d be wanting to set ‘use’ like this
if gpus:
gpus[self.gpu_num].use = use[self.gpu_num]
where the ‘use’ vector in the code above is a list with either True or False, depending on your preferences. You might find a more elegant way of setting each node than the above, but hopefully this demonstrates the idea sufficiently well.
I’m a bit puzzled that just running one blender process with all four GPUs is slower. The use of multiple processes is fine, but, then you might find yourself having to manually configure each process (or script it) to render the correct frames, or render frames with overwrite off to a folder?
Also, how is your RAM? Four processes will consume 4x the RAM when opening the scene, which might be an issue if your scene is around 1/4 the size of your total available RAM. If you go over, you will either get a crash, or hard disk paging which will be A LOT slower than one process and four GPUs 
It would be worth investigating why this is happening as well, we got bad GPU behaviour when the CPU rendered with the GPUs in hybrid mode, we found that by setting the number of threads to one less than the maximum, we left enough threads for the GPU to be well looked after by the CPU. Though in blender 2.80, on windows at least, we noticed no problems with full CPU utilisation in hybrid mode. Can’t say about ubuntu cause our ubuntu server doesn’t have any GPUs xD
Hope this helps, I figure that whatever the cause of the slower performance using one process, this should be investigated further, that doesn’t sound intentional at all by blender devs and might be an area for improvement.
BTW, if anyone wants to give me four 1080 Ti’s, I’ll happily do the investigation 
Peace out
James