I changed the code as follows and it seems to work better by going further:
    def __init__(self):
        super(MLP, self).__init__()
        #self.flatten = nn.Flatten(1, 3)
        self.conv1 = Conv2d(1, 64, 7)
        self.act1 = ReLU()
        self.maxpool1 = MaxPool2d(2)

        self.conv2a = Conv2d(64, 128, 3)
        self.act2a = ReLU()
        self.conv2b = Conv2d(128, 128, 3)
        self.act2b = ReLU()
        self.maxpool2 = MaxPool2d(2)

        self.conv3a = Conv2d(128, 256, 3)
        self.act3a = ReLU()
        self.conv3b = Conv2d(256, 256, 3)
        self.act3b = ReLU()
        self.maxpool3= MaxPool2d(2)

        self.flatten = nn.Flatten(1, 3)
        # not sure on 784
        self.hidden1 = Linear(784, 128)
        self.drop1 = Dropout()
        self.hidden2 = Linear(128, 64)
        self.drop2 = Dropout()
        self.hidden2 = Linear(64, 10)
        self.act7 = Softmax()

Now I am getting this:
Traceback (most recent call last):
  File "p461.py", line 258, in <module>
    train_model(train_dl, model)
  File "p461.py", line 200, in train_model
    yhat = model(inputs)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "p461.py", line 146, in forward
    X = self.conv3b(X)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/conv.py", line 443, in forward
    return self._conv_forward(input, self.weight, self.bias)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/conv.py", line 440, in _conv_forward
    self.padding, self.dilation, self.groups)
RuntimeError: Calculated padded input size per channel: (1 x 1). Kernel size: (3 x 3). Kernel size can't be greater than actual input size

Offending line:
        self.conv3b = Conv2d(256, 256, 3)
from snippet:
       self.conv3a = Conv2d(128, 256, 3)
        self.act3a = ReLU()
        self.conv3b = Conv2d(256, 256, 3)
        self.act3b = ReLU()
        self.maxpool3= MaxPool2d(2)