Why we created the paraviewJupyterKernel (mentioned by Mathieu)
This Jupyter Kernel was designed to be used with the GUI, as an external python shell. It was useful in our use case to keep access to the GUI.
Why GUI is required and not optional
This kernel is an autostart plugin, that can only exists with Qt.
I will update the doc to specify this.