Os parâmetros After= e Before= são estritamente para solicitar a inicialização (e talvez o desligamento) de dois serviços se ambos forem solicitados a serem iniciados. Ter um serviço listado não significa que esses serviços também serão iniciados.
Se você quiser controlar se outro serviço será iniciado, use Requires= , Wants= ou Conflicts= (que vão na seção [Unit] ) ou WantedBy= (que entra em a seção [Install] ).
No seu caso, você deseja iniciar um serviço quando algo dependente dele é iniciado (o que não acontece automaticamente, pois não há motivo para isso). Você desejará adicionar o seguinte ao arquivo e, em seguida, executar systemctl enable dependent :
[Install]
WantedBy=main.service
Isso diz que quando main for iniciado, para iniciar também este serviço e se esse serviço falhar, não pare main .