text: Title: Wrong results with yolo running inference multiple times with Qt backend
  Body: I'm getting wrong results when running this simple code (essentially the YOLO demo example) using the Qt backend for matplotlib. Both on CPU and GPU.
  The first inference gives correct results, the following ones return nonsense.
  This doesn't happen with other models (tried with `ssd_512_mobilenet1.0_coco`).
  or using other backends (e.g. with `TkAgg`).
  
  ```python
  from gluoncv import model_zoo, data, utils 
  import matplotlib
  matplotlib.use('Qt5Agg')
  from matplotlib import pyplot as plt
  import mxnet as mx 
  
  for i in range(5):
      print("########", i)
      net = model_zoo.get_model('yolo3_darknet53_coco', pretrained=True, ctx=mx.gpu(0)) 
      im_fname = utils.download('ht//raw.githubusercontent.com/zhreshold/' + 
          'mxnet-ssd/master/data/demo/dog.jpg', path='dog.jpg') 
      x, img = data.transforms.presets.yolo.load_test(im_fname, short=512) 
      x = x.as_in_context(mx.gpu(0)) 
      print('Shape of pre-processed im', x.shape) 
      class_IDs, scores, bounding_boxs = net(x)
      plt.figure()
      print(scores[0,:10])
  ```
  plt.figure() is useless but calling pyplot is what causes things to go haywire.
  The output is:
  ```
  ######## 0
  Shape of pre-processed im (1, 3, 512, 683)
  [11:26:09] src/operator/nn/./cudnn/./cudnn_algoreg-inl.h:97: Running performance tests to find the best convolution algorithm, this can take a while... (setting env variable MXNET_CUDNN_AUTOTUNE_DEFAULT to 0 to disable)
  
  [[ 0.9919528 ]
   [ 0.9600397 ]
   [ 0.62269807]
   [ 0.29241946]
   [ 0.01795176]
   [ 0.01141726]
   [-1.        ]
   [-1.        ]
   [-1.        ]
   [-1.        ]]
  <NDArray 10x1 @gpu(0)>
  ######## 1
  Shape of pre-processed im (1, 3, 512, 683)
  
  [[ 2.00238937e-04]
   [ 1.32904228e-04]
   [ 1.25731094e-04]
   [ 1.21111851e-04]
   [ 1.12316993e-04]
   [ 1.06516934e-04]
   [ 9.43234991e-05]
   [ 5.61804554e-05]
   [-1.00000000e+00]
   [-1.00000000e+00]]
  <NDArray 10x1 @gpu(0)>
  ######## 2
  Shape of pre-processed im (1, 3, 512, 683)
  
  [[ 2.00238937e-04]
   [ 1.32904228e-04]
   [ 1.25731094e-04]
   [ 1.21111851e-04]
   [ 1.12316993e-04]
   [ 1.06516934e-04]
   [ 9.43234991e-05]
   [ 5.61804554e-05]
   [-1.00000000e+00]
   [-1.00000000e+00]]
  <NDArray 10x1 @gpu(0)>
  ######## 3
  Shape of pre-processed im (1, 3, 512, 683)
  
  [[ 2.00238937e-04]
   [ 1.32904228e-04]
   [ 1.25731094e-04]
   [ 1.21111851e-04]
   [ 1.12316993e-04]
   [ 1.06516934e-04]
   [ 9.43234991e-05]
   [ 5.61804554e-05]
   [-1.00000000e+00]
   [-1.00000000e+00]]
  <NDArray 10x1 @gpu(0)>
  ######## 4
  Shape of pre-processed im (1, 3, 512, 683)
  
  [[ 2.00238937e-04]
   [ 1.32904228e-04]
   [ 1.25731094e-04]
   [ 1.21111851e-04]
   [ 1.12316993e-04]
   [ 1.06516934e-04]
   [ 9.43234991e-05]
   [ 5.61804554e-05]
   [-1.00000000e+00]
   [-1.00000000e+00]]
  <NDArray 10x1 @gpu(0)>
  ```
  Of course plotting in a loop has small practical reason, but this clearly happens also when you run yolo multiple times in a shell.
  