from PySide import QtGui

import sys
class Widget(QtGui.QWidget):
    def __init__(self,parent=None):
        super(Widget,self).__init__(parent=None)


def main():

    try:
        QtGui.QApplication([])
    except Exception as e:
        print(10,e)
    widget = Widget()
    widget.show()
    sys.exit(QtGui.QApplication.exec_())
if __name__ == "__main__":
    main()

これは何の変哲もない、Widgetを表示するだけのプログラムです。
お聞きしたいのは、QApplicationについてです。
QApplicationは、最初はエラーなく実行されるのですが、
2回目からは、必ずエラーを吐きます。ウィジェットをクローズしても、
カーネルは、QApplication()が一度実行されたことを覚えていているようで、
カーネルを再起動しない限り、再度実行する事ができません。

追記:
そのため、try:except文でこのエラーを回避することにより、コードを実行しています。
もしこの文が無ければ、

A QApplication instance already exists.

と書かれたRunTimeErrorが発生します。

他のQtユーザーたちは、そういう事が無いように思うのですが、
このエラーが発生しない方法はありますか?
おもちの実行環境では、そのようなことはありませんか?
開発環境は Anaconda3 Spyder3.2.4です。