On Ubuntu 16.04, open is actually openvt which in turn doesn't work for this.
Using xdg-open should do instead
...
elif platform.system() == 'Linux':
call(['xdg-open', pdf_filename], env=ENVIRON)
...
Not sure if this is just me, quite surprised no linux user found this before