input: Write a function to create a machine learning model in Python that distinguishes between cats and dogs using a provided dataset of 800 images. The function should return the compiled model ready for training. If the dataset path is incorrect, return None. 
  
  assert distinguish_cats_dogs('/path/to/dataset') != None
  assert distinguish_cats_dogs('/incorrect/path') == None
output: def distinguish_cats_dogs(dataset_path):
      import os
      from tensorflow.keras.models import Sequential
      from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
      from tensorflow.keras.preprocessing.image import ImageDataGenerator
  
      if not os.path.exists(dataset_path):
          return None
  
      model = Sequential([
          Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)),
          MaxPooling2D(2, 2),
          Conv2D(64, (3, 3), activation='relu'),
          MaxPooling2D(2, 2),
          Conv2D(128, (3, 3), activation='relu'),
          MaxPooling2D(2, 2),
          Flatten(),
          Dense(512, activation='relu'),
          Dense(1, activation='sigmoid')
      ])
  
      model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
  
      return model