Usually error correction is to be done after adaptor trimming. If you perform error correction you need not trim ends for low quality bases as the error correction doesn't change base-quality values but changes the read-bases only.
Error correction is definitely recommended for denovo assembly when you work with illumina data. Since you have PE-reads, you would be going for de-bruijin assemblers which would create kmer overlaps based on the read data. If there are kmer errors you either create a misassembly or no assembly based on the assembly parameters specifying the kmer coverage.
I have used Musket before, which worked like a charm on my data at-least.
For a main-stream assembler nowadays, if it needs error correction, it will come with an error corrector it prefers. For example, spades comes with hammer. SGA/allpaths-lg use their own correctors. Long-read assemblers pack falcon_sense etc by default. I would recommend to just use the error corrector the assembler recommends. Sometimes, the overall best error corrector does not necessarily deliver the best assembly because tools all make trade off here and there; the right combination is often more important.